<#assign uncapTableName = "${tableName}"?uncap_first>
package ${parentName}.${moduleName}.core.port.adapter.convert;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.mapstruct.*;
import ${parentName}.${moduleName}.api.dto.request.*;
import ${parentName}.${moduleName}.api.dto.response.*;
import ${parentName}.${moduleName}.core.application.command.*;
import ${parentName}.${moduleName}.core.domain.aggregatemodel.*;
import com.smedi.ismedi.web.starter.common.PaginationData;
import java.util.List;

 /**
  * AdapterConverter
  *
  * @author ${author}
  * @since ${date}
  */
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface AdapterConverter {
<#list tableNames as tableName>
    Add${tableName}Command add${tableName}RequestToAdd${tableName}Command(Add${tableName}Request add${tableName}Request);

    Del${tableName}Command del${tableName}RequestToDel${tableName}Command(Del${tableName}Request del${tableName}Request);

    Update${tableName}Command update${tableName}RequestToUpdate${tableName}Command(Update${tableName}Request update${tableName}Request);

    ${tableName}Response ${tableName}To${tableName}Response(${tableName} ${uncapTableName});

    PaginationData<${tableName}Response> ${tableName}PageTo${tableName}ResponsePage(Page<${tableName}> page${tableName});

    Query${tableName}PageCommand query${tableName}PageRequestToQuery${tableName}PageCommand(Query${tableName}PageRequest query${tableName}PageRequest);

    Query${tableName}ByOneCommand query${tableName}ByOneRequestToQuery${tableName}ByOneCommand(Query${tableName}ByOneRequest query${tableName}ByOneRequest);

    Query${tableName}ListCommand query${tableName}ListRequestToQuery${tableName}ListCommand(Query${tableName}ListRequest query${tableName}ListRequest);

    List<${tableName}Response> ${tableName}ListTo${tableName}ResponseList(List<${tableName}> ${uncapTableName}List);

</#list>


}